// Copyright(c) 2011 Matthew McMullan, Jorel Lalicki and Mike Heise, Jorel Lalicki and Mike Heise. See copying.txt for details.

#ifndef __agml_compiler_h__
#define __agml_compiler_h__

// make sure that this file is never included directly
#ifndef __agml_agml_h__
#error "Include AGML from agml.h only. This file is not a valid entry point for the library."
#endif

// define compiler
#ifdef __GNUC__
#define __agml_compiler_gcc
#define __agml_compiler_gcc_compat
#elif defined __MINGW32__
#define __agml_compiler_mingw
#define __agml_compiler_gcc_compat
#elif defined __llvm__
#define __agml_compiler_llvm
#define __agml_compiler_gcc_compat
#elif defined __clang__
#define __agml_compiler_clang
#define __agml_compiler_gcc_compat
#elif defined _MSC_VER
#define __agml_compiler_msvcc
#elif defined __INTEL_COMPILER
#define __agml_compiler_intel
#elif defined __CC_ARM
#define __agml_compiler_arm
#else
#define __agml_compiler_other
#warning "Your compiler is obscure!"
#endif

// include necessary files
#ifdef __agml_compiler_gcc_compat
#include "gcc.h"
#elif defined __agml_compiler_msvcc
#include "msvcc.h"
#else
#warning "unsupported compiler"
#include "unsupported.h"
#endif

#endif
